package praktikumid.p02_e;

/**
 * Variables klass.
 * @author ago
 *
 */
public class Variables {
	/**
	 * annavad parema ülevaate, 
	 * mida mingi väärtus teeb. Ehk siis 
	 * if (n == 3) asemel
	 * if (n == UNDO) 
	 * 
	 * 3 puhul ei pruugi mäletada, mida see tähendab,
	 * UNDO aga annab väikese vihje.
	 */
	static final int PRINDI = 1;
	static final int MANGI = 2;
	static final int UNDO = 3;
	static final int EXIT = 4;

	/**
	 * See on main meetod.
	 * @param args Käsurea argumendid
	 */
	public static void main(String[] args) {
		System.out.println("Hello world!");
		
		// kirjutame koodi siia
		int n = 1;
		// n + 1 (2)
		// 1 + 1 (2)
		System.out.println(n);
		n = 3;
		n = n + 1; // n = 4
		//n = n / 2;
		// n + 1 (3)
		// 2 + 1 (3)
		System.out.println(n);
		
		// 3.5 on vaikimisi double
		double d = 3.5;
		// f modifikaator teisendab arvu float'iks
		float f = 3.5f;
		//f = (float) 5.6;
		
		f = f / 2;
		System.out.println(f);
		
		if (true) {
			//käivitatakse alati
			
		}
		if (false) {
			// ei käivitata kunagi
		} else {
			// kui esimene osa ei käivitu
		}
		
		if (n > 4) {
			System.out.println("n on suurem kui 4");
		} else {
			System.out.println("n on väiksem-võrdne kui 4");			
		}
		if (n == 4) {
			System.out.println("n on täpselt 4");
		}
		
		/*
		 * 1. print
		 * 2. mängi
		 * 3. undo
		 * 4. exit
		 */
		if (n == PRINDI) {
			// käivita "print"
		} else if (n == MANGI) {
			// käivita "mängi"
		} else if (n == UNDO) {
			// undo
		} else {
			// kõikidel muudel juhtudel
		}
		
		n = 1;
		switch (n) {
		case PRINDI:
			// if (n == 1) {
			System.out.println("print");
			// }
			break;
			// seda ei käivitata
		case MANGI:
		case UNDO:
			// if (n == 2) {
			System.out.println("mängi või undo");
			// }
			break;

		default:
			break;
		}
		
		// tsüklid
		// 1) lõpetamine bloki sees
		n = 10;
		while (true) {
			// statement			
			System.out.println(n);
			System.out.println("lõpeta ära");
			if (n <= 0) {
				break;
			}
			// n--;
			n = n - 1;
		}
		
		// 2) "lõpetamine" (tegelikult kordustingimus) tsükli tingimuses
		n = 10;
		while (n >= 0) {
			System.out.println(n);
			System.out.println("lõpeta ära");
			if (n < 5) {
				break;
			}
			n--;
		}
		
		// 3)
		// for (initsialiseerimine; tingimus; igal iteratsioonil 
		// käivitatav kood)
		for (n = 10; n >= 0; n--) {
			System.out.println(n);
			System.out.println("lõpeta" + " ära");
		}
		
		/*for (n = 10; ; n--) {
			// lõputult jookseb
			break;
		}*/
		
		int i, j;
		for (i = 1; i <= 10; i++) {
			System.out.print(i + " ");
			// i = [1..10]
			for (j = 1; j <= 10; j++) {
				System.out.print((j * i) + " ");
			}
			System.out.println();
		}
		
		
	}
}